
//777.在LR字符串中交换相邻字符
class Solution {
public:
    bool canTransform(string start, string result) {
        //先判断两个字符串中R和L的向后顺序时候相同
        string s=start,r=result;
        s.erase(remove(s.begin(),s.end(),'X'),s.end());
        r.erase(remove(r.begin(),r.end(),'X'),r.end());

        if(s!=r) return false;
        //判断能否通过移动得到result
        int i=0,j=0;
        int n=start.size();
        while(i<n&&j<n)
        {
            while(start[i]=='X') i++;
            while(result[j]=='X') j++;
            //当该位置是L且i<j的时候不能通过移动得到result
            //同理当该位置是R且i>j的时候也不能通过移动得到result
            if(start[i]=='L'&&i<j) return false;
            else if(start[i]=='R'&&i>j) return false;
            i++,j++;
        }    
        return true;
    }
};